/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Georeferenciacion;

import entities.Barrio;
import entities.Direccion;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import org.primefaces.event.map.OverlaySelectEvent;
import org.primefaces.model.map.DefaultMapModel;
import org.primefaces.model.map.LatLng;
import org.primefaces.model.map.MapModel;
import org.primefaces.model.map.Marker;
import persistence.BarrioJpaController;

/**
 *
 * @author Felipe Duarte
 */
@ManagedBean
@ViewScoped
public class Georeferencia {

    private MapModel geoModel;
    private Marker selectedBarrio;
    private BarrioJpaController barrioJpaController = null;
    private String localidad, barrio, ciudad;

    @PostConstruct
    private void init() {
        initControllers();
        agregarBarrios();
    }

   

    private void limpiarCampos() {
    }

    public void overlaySelect(OverlaySelectEvent event) {
        limpiarCampos();
        selectedBarrio = (Marker) event.getOverlay();
        Barrio barrioS = (Barrio) selectedBarrio.getData();
        barrio = barrioS.getNombreBarrio();
        localidad = barrioS.getLocalidadBarrio();
        ciudad = barrioS.getIdCiudadBarrio().getNombreCiudad();

    }

    public void agregarBarrios() {
        geoModel = new DefaultMapModel();

        if (barrioJpaController.findBarrioEntities() != null && !barrioJpaController.findBarrioEntities().isEmpty()) {
            for (int j = 0; j < barrioJpaController.findBarrioEntities().size(); j++) {
                Barrio barrio = barrioJpaController.findBarrioEntities().get(j);
                Marker markerEst = new Marker(new LatLng(barrio.getLatitudBarrio(), barrio.getLongitudBarrio()),
                        barrio.getNombreBarrio(),
                        barrio, "http://maps.google.com/mapfiles/ms/micons/blue-dot.png");
                geoModel.addOverlay(markerEst);
            }

        }
    }
    //<editor-fold defaultstate="collapsed" desc="Getter's and Setter's">
    
     public MapModel getGeoModel() {
        return geoModel;
    }

    public void setGeoModel(MapModel geoModel) {
        this.geoModel = geoModel;
    }

    public Marker getSelectedBarrio() {
        return selectedBarrio;
    }

    public String getLocalidad() {
        return localidad;
    }

    public void setLocalidad(String localidad) {
        this.localidad = localidad;
    }

    public String getBarrio() {
        return barrio;
    }

    public void setBarrio(String barrio) {
        this.barrio = barrio;
    }

    public String getCiudad() {
        return ciudad;
    }

    public void setCiudad(String ciudad) {
        this.ciudad = ciudad;
    }
    
    

    public void setSelectedBarrio(Marker selectedBarrio) {
        this.selectedBarrio = selectedBarrio;
    }
    //</editor-fold>

    //<editor-fold defaultstate="collapsed" desc="Inicializar los controladores">
    public void initControllers() {
        FacesContext context = FacesContext.getCurrentInstance();
        barrioJpaController = (BarrioJpaController) context.getELContext().getELResolver().getValue(context.getELContext(), null, "barrioJpaController");

    }
//</editor-fold>
}
